package com.yfp.operation.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * 套餐计划实体类
 * @TableName combo_plan
 */
@TableName(value ="combo_plan")
@Data
public class ComboPlan implements Serializable {
    /**
     * 套餐投放计划id
     */
    @TableId
    @Schema(description = "套餐投放计划id")
    private String cPlanId;

    /**
     * 套餐计划名称
     */
    @Schema(description = "套餐计划名称")
    @NotNull(message = "套餐计划名称不能为空")
    private String cPlanName;

    /**
     * 机器类型
     */
    @Schema(description = "机器类型")
    @NotNull(message = "机器类型不能为空")
    private String machineType;

    /**
     * 开始时间
     */
    @Schema(description = "开始时间")
    @NotNull(message = "开始时间不能为空")
    private Timestamp startTime;

    /**
     * 结束时间
     */
    @Schema(description = "结束时间")
    @NotNull(message = "结束时间不能为空")
    private Timestamp endTime;

    /**
     * 计划id
     */
    @Schema(description = "计划id")
    private String planId;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Date updateTime;

    /**
     * 状态
     */
    @Schema(description = "状态")
    private String status;

    /**
     * 全文索引
     */
    private Object fts;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 套餐货道信息列表
     */
    @Schema(description = "套餐货道信息列表")
    @TableField(exist = false)
    private List<CPComboRoad> comboRoadList;

    /**
     * 设备id列表
     */
    @Schema(description = "设备id列表")
    @NotNull(message = "设备id列表不能为空")
    @TableField(exist = false)
    private List<String> machineIds;
}